home *** CD-ROM | disk | FTP | other *** search
- ;========================================================================================
- ; VIC-20 KERNEL and BASIC ROM Variable Equates
- ; (c) 1996 Richard A. Cini, Jr. All Rights Reserved.
- ;
- ; Portions of this have been derived from a file in comp.sys.cbm dated 9/1/94.
- ; File was restructured to be used as part of an <#INCLUDE> assembler directive.
- ; Undefined symbols from the comp.sys.cbm doc were created; others cleaned-up.
- ; Variable locations were cross-referenced against other sources for correctness.
- ;
- ;
- ; Release History:
- ; ================
- ; 1996/12/13 0.10 First release to CBMAPPS (sort of public beta)
- ;
- ;========================================================================================
-
- ;
- ;Public KERNEL API
- ; For indirected vectors, remember to use an indirect JSR to "call through" to function.
- ;
- ACPTR =$EF19 ;Receive From Serial Bus
- ;BREAK =$FED2 ;Break vector handler
- BREAK =IBREAK
- ;CHKIN =$F2C7 ;Set Input Device
- CHKIN =ICHKIN
- ;CHKOUT =$F309 ;Set Output Device
- CHKOUT =ICHKOUT
- ;CHRIN =$F20E ;Input a byte
- CHRIN =ICHRIN
- ;CHROUT =$F27A ;Output One Character
- CHROUT =ICHROUT
- CIOUT =$EEE4 ;Send Serial Deferred
- ;CLALL =$F3EF ;Abort All Files
- CLALL =ICLALL
- ;CLOSE =$F34A ;Close File
- CLOSE =ICLOSE
- ;CLRCHN =$F3F3 ;Restore Default I/O
- CLRCHN =ICLRCHN
- ;GETIN =$F1F5 ;Get a byte
- GETIN =IGETIN
- IOBASE =$E500 ;Return I/O Base Address
- LISTN =$EE17 ;Send LISTEN Command on Serial Bus
- LOAD =$F542 ;Load RAM From Device (flows to ILINKL)
- MEMBOT =$FE82 ;Set / Read Bottom of Memory
- MEMTOP =$FE73 ;Set / Read Top of Memory
- ;OPEN =$F40A ;Open File
- OPEN =IOPEN
- PLOT =$E50A
- RDTIM =$F760 ;Read Real-Time Clock
- READST =$FE57 ;Get I/O Status Word
- RESTOR =$FD52 ;Restore Kernal Vectors (at $0314)
- SAVE =$F675 ;Save RAM To Device (flows to ILINKS)
- SCNKEY =$EB1E ;Scan keyboard
- SCREEN =$E505
- SECND =$EEC0 ;Send LISTEN Secondary Address
- SETLFS =$FE50 ;Set Logical File Parameters
- SETMSG =$FE66 ;Control OS Messages
- SETNAM =$FE49 ;Set Filename
- SETTIM =$F767 ;Set Real-Time Clock
- SETTMO =$FE6F ;Set IEEE Timeout
- ;STOP =$F770 ;Check STOP Key
- STOP =ISTOP
- TALK =$EE14 ;Send TALK Command on Serial Bus
- TKSA =$EECE ;Send TALK Secondary Address
- UDTIM =$F734 ;Increment Real-Time Clock
- UNLSN =$EF04 ;Send UNLISTEN on Serial Bus
- UNTLK =$EEF6 ;Send UNTALK on Serial Bus
- ;USER =$FED2 ;User vector
- USER =IUSER
- VECTOR =$FD57 ;Change Vectors For User
- ;
- ;
- ;Transfer Vectors
- ; Generally, these are not meant to be called by USER programs, except maybe IRQ, which
- ; can be called to chain interrupts.
- NMI =NMIXFR ; FFFA =>FEA9=>(0318)
- RESET =RSTXFR ; FFFC =>FD22
- IRQ =IRQXFR ; FFFE =>FF72=>(0314)/(0316)
-
- ;
- ;Indirected vectors
- ; These are the locations specified in the KERNEL ROM. I think that it is easier to call the function
- ; directly. KERNEL has the following, for example:
- ;
- ;BREAK JMP($0316)
- ;
- IBREAK =$0316 ;Break vector (FED2)
- ICHKIN =$031E ;Set Input Device
- ICHKOUT =$0320 ;Set Output Devic
- ICHRIN =$0324 ;Input a byte
- ICHROUT =$0326 ;Output One Character
- ICLALL =$032C ;Abort All Files
- ICLOSE =$031C ;Close File
- ICLRCHN =$0322 ;Restore Default I/O
- IGETIN =$032A ;Get a byte
- IIRQ =$0314 ;IRQ vector pointer (EABF)
- ILINKL =$0330 ;Link to LOAD
- ILINKS =$0332 ;Link to SAVE
- INMI =$0318 ;Non-maskable interrupt vector pointer (FEAD)
- IOPEN =$031A ;Open File
- ISTOP =$0328 ;Check STOP Key
- IUSER =$032E ;User vector (FED2)
-
- ;
- ;General ROM variable equates
- ;BASIC
- BENTER =$c000 ;Basic Restart Vectors
- BPANIC =$C002 ;Basic PANIC entry
- BASSIG =$c004 ;'cbmbasic'
-
- STMDSP =$c00c ;BASIC Command Vectors
- FUNDSP =$c052 ;BASIC Function Vectors
- OPTAB =$c080 ;BASIC Operator Vectors
- RESLST =$c09e ;BASIC Command Keyword Table
- MSCLST =$c129 ;BASIC Misc. Keyword Table
- OPLIST =$c140 ;BASIC Operator Keyword Table
- FUNLST =$c14d ;BASIC Function Keyword Table
- ERRTAB =$c19e ;Error Message Table
- ERRPTR =$c328 ;Error Message Pointers
- OKK =$c364 ;Misc. Messages
- ;c364 ;'<cr>ok<cr>'
- ;c369 ;'error'
-
- UNUSE1 =$c389 ;Unused byte
- FNDFOR =$c38a ;Find FOR/GOSUB Entry on Stack
- BLTU =$c3b8 ;Open Space in Memory
- GETSTK =$c3fb ;Check Stack Depth
- REASON =$c408 ;Check Memory Overlap
- OMERR =$c435 ;Output "?OUT OF MEMORY Error"
- ERROR =$c437 ;Error Routine
- ERRFIN =$c469 ;Break Entry
- READY =$c474 ;BASIC ready entry
- MAIN =$c480 ;Input & Identify BASIC Line
- MAIN1 =$c49c ;Get Line Number & Tokenise Text
- INSLIN =$c4a2 ;Insert BASIC Text
- LNKPRG =$c533 ;Rechain Lines
- INLIN =$c560 ;Input Line Into Buffer
- CRUNCH =$c579 ;Tokenize Input Buffer
- FNDLIN =$c613 ;Search for Line Number
- SCRTCH =$c642 ;Perform [new]
- CLEAR =$c65e ;Perform [clr]
- STXPT =$c68e ;Reset TXTPTR
- LIST =$c69c ;Perform [list]
- QPLOP =$c717 ;Handle LIST
- FOR =$c742 ;Perform [for]
- NEWSTT =$c7ae ;BASIC Warm Start
- CKEOL =$c7c4 ;Check End of Program
- GONE =$c7e1 ;Prepare to execute statement
- GONE3 =$c7ed ;Perform BASIC Keyword
- RESTOR =$c81d ;Perform [restore]
- STOP =$c82c ;Perform [stop], [end], break
- CONT =$c857 ;Perform [cont]
- RUN =$c871 ;Perform [run]
- GOSUB =$c883 ;Perform [gosub]
- GOTO =$c8a0 ;Perform [goto]
- RETURN =$c8d2 ;Perform [return]
- DATA =$c8f8 ;Perform [data]
- DATAN =$c906 ;Search for Next Statement / Line
- IF =$c928 ;Perform [if]
- REM =$c93b ;Perform [rem]
- ONGOTO =$c94b ;Perform [on]
- LINGET =$c96b ;Fetch linnum From BASIC
- LET =$c9a5 ;Perform [let]
- PUTINT =$c9c4 ;Assign Integer
- PTFLPT =$c9d6 ;Assign Floating Point
- PUTSTR =$c9d9 ;Assign String
- PUTTIM =$c9e3 ;Assign TI$
- GETSPT =$ca2c ;Add Digit to FAC#1
- PRINTN =$ca80 ;Perform [print#]
- CMD =$ca86 ;Perform [cmd]
- STRDON =$ca9a ;Print String From Memory
- PRINT =$caa0 ;Perform [print]
- VAROP =$cab8 ;Output Variable
- CRDO =$cad7 ;Output CR/LF
- COMPRT =$cae8 ;Handle comma, TAB(, SPC(
- STROUT =$cb1e ;Output String
- OUTSPC =$cb3b ;Output Format Character
- DOAGIN =$cb4d ;Handle Bad Data
- GET =$cb7b ;Perform [get]
- INPUTN =$cba5 ;Perform [input#]
- INPUT =$cbbf ;Perform [input]
- BUFFUL =$cbea ;Read Input Buffer
- QINLIN =$cbf9 ;Do Input Prompt
- READ =$cc06 ;Perform [read]
- RDGET =$cc35 ;General Purpose Read Routine
- EXINT =$ccfc ;Input Error Messages
- ;ccfc '?EXTRA IGNORED<CR>'
- ;cd0c '?REDO FROM START<CR>'
-
- NEXT =$cd1e ;Perform [next]
- DONEXT =$cd61 ;Check Valid Loop
- FRMNUM =$cd8a ;Confirm Result
- FRMEVL =$cd9e ;Evaluate Expression in Text
- EVAL =$ce83 ;Evaluate Single Term
- PIVAL =$cea8 ;Constant - pi
- QDOT =$cead ;Continue Expression
- PARCHK =$cef1 ;Expression in Brackets
- CHKCLS =$cef7 ;Confirm Character
- CHKPNC =$cef7 ;test ')'
- CHKPNO =$cefa ;test '('
- CHKCOM =$cefd ;test comma
- SNERR =$cf08 ;Output "?SYNTAX Error"
- DOMIN =$cf0d ;Set up NOT Function
- RSVVAR =$cf14 ;Identify Reserved Variable
- ISVAR =$cf28 ;Search for Variable
- TISASC =$cf48 ;Convert TI to ASCII String
- ISFUN =$cfa7 ;Identify Function Type
- STRFUN =$cfb1 ;Evaluate String Function
- NUMFUN =$cfd1 ;Evaluate Numeric Function
- OROP =$cfe6 ;Perform [or], [and]"
- DOREL =$d016 ;Perform <, =, >"
- NUMREL =$d01b ;Numeric Comparison
- STRREL =$d02e ;String Comparison
- DIM =$d07e ;Perform [dim]
- PTRGET =$d08b ;Identify Variable
- ORDVAR =$d0e7 ;Locate Ordinary Variable
- NOTFNS =$d11d ;Create New Variable
- NOTEVL =$d128 ;Create Variable
- ARYGET =$d194 ;Allocate Array Pointer Space
- N32768 =$d1a5 ;Constant 32768 in Flpt DATA
- FACINX =$d1aa ;FAC#1 to Integer in (AC/YR)
- INTIDX =$d1b2 ;Evaluate Text for Integer
- AYINT =$d1bf ;FAC#1 to Positive Integer
- ISARY =$d1d1 ;Get Array Parameters
- FNDARY =$d218 ;Find Array
- BSERR =$d245 ;"?Bad subscript error"
- FCERR =$d248 ;"?Illegal quantity error"
- NOTFDD =$d261 ;Create Array
- INLPN2 =$d30e ;Locate Element in Array
- UMULT =$d34c ;Number of Bytes in Subscript
- FRE =$d37d ;Perform [fre]
- GIVAYF =$d391 ;Convert Integer in (AC/YR) to Flpt
- POS =$d39e ;Perform [pos]
- ERRDIR =$d3a6 ;Confirm Program Mode
- GETFNM =$d3e1 ;Check Syntax of FN
- FNDOER =$d3f4 ;Perform [fn]
- STRD =$d465 ;Perform [str$]
- STRLIT =$d487 ;Setup String
- PUTNW1 =$d4d5 ;Save String Descriptor
- GETSPA =$d4f4 ;Allocate Space for String
- GARBAG =$d526 ;Garbage Collection
- DVARS =$d5bd ;Search for Next String
- GRBPAS =$d606 ;Collect a String
- CAT =$d63d ;Concatenate Two Strings
- MOVINS =$d67a ;Store String in High RAM
- FRESTR =$d6a3 ;Perform String Housekeeping
- FREFAC =$d6db ;Clean Descriptor Stack
- CHRD =$d6ec ;Perform [chr$]
- LEFTD =$d700 ;Perform [left$]
- RIGHTD =$d72c ;Perform [right$]
- MIDD =$d737 ;Perform [mid$]
- PREAM =$d761 ;Pull sTring Parameters
- LEN =$d77c ;Perform [len]
- LEN1 =$d782 ;Exit String Mode
- ASC =$d78b ;Perform [asc]
- GTBYTC =$d79b ;Evaluate Text to 1 Byte in XR
- VAL =$d7ad ;Perform [val]
- STRVAL =$d7b5 ;Convert ASCII String to Flpt
- GETNUM =$d7eb ;Get parameters for POKE/WAIT
- GETADR =$d7f7 ;Convert FAC#1 to Integer in LINNUM
- PEEK =$d80d ;Perform [peek]
- POKE =$d824 ;Perform [poke]
- WAIT =$d82d ;Perform [wait]
- FADDH =$d849 ;Add 0.5 to FAC#1
- FSUB =$d850 ;Perform Subtraction
- FADD5 =$d862 ;Normalize Addition
- FADD =$d867 ;Perform Addition
- NEGFAC =$d947 ;2's Complement FAC#1
- OVERR =$d97e ;"?OVERFLOW Error"
- MULSHF =$d983 ;Multiply by Zero Byte
- FONE =$d9bc ;Table of Flpt Constants
- LOG =$d9ea ;Perform [log]
- FMULT =$da28 ;Perform Multiply
- MULPLY =$da59 ;Multiply by a Byte
- CONUPK =$da8c ;Load FAC#2 From Memory
- MULDIV =$dab7 ;Test Both Accumulators
- MLDVEX =$dad4 ;Overflow / Underflow
- MUL10 =$dae2 ;Multiply FAC#1 by 10
- TENC =$daf9 ;Constant 10 in Flpt
- DIV10 =$dafe ;Divide FAC#1 by 10
- FDIV =$db07 ;Divide FAC#2 by Flpt at (AC/YR)
- FDIVT =$db0f ;Divide FAC#2 by FAC#1
- MOVFM =$dba2 ;Load FAC#1 From Memory
- MOV2F =$dbc7 ;Store FAC#1 in Memory
- MOVFA =$dbfc ;Copy FAC#2 into FAC#1
- MOVAF =$dc0c ;Copy FAC#1 into FAC#2
- ROUND =$dc1b ;Round FAC#1
- SIGN =$dc2b ;Check Sign of FAC#1
- SGN =$dc39 ;Perform [sgn]
- ABS =$dc58 ;Perform [abs]
- FCOMP =$dc5b ;Compare FAC#1 With Memory
- QINT =$dc9b ;Convert FAC#1 to Integer
- INT =$dccc ;Perform [int]
- FIN =$dcf3 ;Convert ASCII String to a Number in FAC#1
- N0999 =$ddb3 ;String Conversion Constants
- INPRT =$ddc2 ;Output 'IN ' + Line Number
- FOUT =$dddd ;Convert FAC#1 to ASCII String
- FOUTIM =$de68 ;Convert TI to String
- FHALF =$df11 ;Table of Constants
- SQR =$df71 ;Perform [sqr]
- FPWRT =$df7b ;Perform power ($)
- NEGOP =$dfb4 ;Negate FAC#1
- LOGEB2 =$dfbf ;Table of Constants
- EXP =$dfed ;Perform [exp]
-
- ;
- ;Kernel ROM
- ; Code continues from Basic ROM
- ;
- POLYX =$e040 ;Series Evaluation
- RMULC =$e08a ;Constants for RND
- RND =$e094 ;Perform [rnd]
- BIOERR =$e0f6 ;Handle I/O Error in BASIC
- BCHOUT =$e109 ;Output Character
- BCHIN =$e10f ;Input Character
- BCKOUT =$e115 ;Setup For Output
- BCKIN =$e11b ;Setup For Input
- BGETIN =$e121 ;Get One Character
- SYS =$e127 ;Perform [sys]
- SAVET =$e153 ;Perform [save]
- VERFYT =$e162 ;Perform [verify / load]
- OPENT =$e1bb ;Perform [open]
- CLOSET =$e1c4 ;Perform [close]
- SLPARA =$e1d1 ;Get Parameters For LOAD/SAVE
- COMBYT =$e1fd ;Get Next One Byte Parameter
- DEFLT =$e203 ;Check Default Parameters
- CMMERR =$e20b ;Check For Comma
- OCPARA =$e216 ;Get Parameters For OPEN/CLOSE
- COS =$e261 ;Perform [cos]
- SIN =$e268 ;Perform [sin]
- TAN =$e2b1 ;Perform [tan]
- PI2 =$e2dd Table of Trig Constants
- ;e2dd pi/2 1.570796327
- ;e2e2 pi*2 6.28318531
- ;e2e7 0.25
- ;e2ec #05(counter)
- ;e2ed -14.3813907
- ;e2f2 42.0077971
- ;e2f7 -76.7041703
- ;e2fc 81.6052237
- ;e301 -41.3417021
- ;e306 6.28318531
-
- ATN =$e30b ;Perform [atn]
- ATNCON =$e33b ;Table of ATN Constants
- ;e33b #0B(counter)
- ;e3ec -0.000684794
- ;e341 0.004850942
- ;e346 -0.161117018
- ;e34b 0.034209638
- ;e350 -0.054279133
- ;e355 0.072457197
- ;e35a -0.089802395
- ;e35f 0.110932413
- ;e364 -0.142839808
- ;e369 0.19999912
- ;e36e -0.333333316
- ;e373 1
-
- INIT =$e378 ;BASIC Cold Start
- INITAT =$e387 ;CHRGET For Zero-page
- RNDSED =$e39f ;RND Seed For zero-page (0.811635157)
- INITCZ =$e3a4 ;Initialize BASIC RAM
- INITMS =$e404 ;Output Power-Up Message
- WORDS =$e429 ;Power-up Message
- ;e429 ' BYTES FREE<CR>'
- ;e436 '<CLR>**** CBM BASIC V2 ****<CR>'
-
- BVTRS =$e44f ;Table of BASIC Vectors (for 0300)
- INITV =$e45b ;Initialize Vectors
- BASSFT =$e467 ;BASIC Warm Restart [RUN/STOP-RESTORE]
- UNKNO1 =$e475 ;UNKNOWN
- UNUSD2 =$e47c ;Unused Bytes For Future Patches
- SOUT1 =$e4a0 ;Serial Output 1
- SOUT0 =$e4a9 ;Serial Output 0
- SDCLK =$e4b2 ;Get Serial Data And Clock In
- SSADR =$e4bc ;Get Secondary Address patch for Serial LOAD/VERIFY
- SLDPCH =$e4c1 ;Relocated Load patch for Serial LOAD/VERIFY
- TPWPCH =$e4cf ;Tape Write patch for CLOSE
- UNUSD3 =$e4da ;Unused
- SCREEN =$e505 ;Return Screen Organization
- PLOT =$e50a ;Read / Set Cursor X/Y Position
- CINT1 =$e518 ;Initialize I/O
- CLRSCN =$e55f ;Clear Screen
- HOME =$e581 ;Home Cursor
- SCNPTR =$e587 ;Set Screen Pointers
- IODEF1 =$e5b5 ;Set I/O Defaults (Unused Entry)
- IODEFL =$e5bb ;Set I/O Defaults
- LP2 =$e5cf ;Get Character From Keyboard Buffer
- INKEY =$e5e5 ;Input From Keyboard
- INSCRN =$e64f ;Input From Screen or Keyboard
- QUOTET =$e6b8 ;Quotes Test
- CMD4 =$e6c5 ;Set Up Screen Print
- CSRPLS =$e6ea ;Advance Cursor
- CSRMIN =$e719 ;Retreat Cursor
- CSRUP =$e72d ;Back on to Previous Line
- OUTSCR =$e742 ;Output to Screen
- NOSHCH =$e756 ;-unshifted characters-
- SHCHRS =$e800 ;-shifted characters-
- NEWLIN =$e8c3 ;Go to Next Line
- CR =$e8d8 ;Output <CR>
- CKLNMI =$e8e8 ;Check Line Decrement
- CKLNPL =$e8fa ;Check Line Increment
- STCLRC =$e912 ;Set Color Code
- COLRTB =$e921 ;Color Code Table
- UNKNO2 =$e929 ;Unknown
- SCRLSC =$e975 ;Scroll Screen
- INSSPC =$e9ee ;Open a Space On The Screen
- MOVELN =$ea56 ;Move a Screen Line
- COPYCL =$ea6e ;Syncronize Color Transfer
- LINSTR =$ea7e ;Set Start of Line
- CLRLIN =$ea8d ;Clear Screen Line
- PRNSCR =$eaa1 ;Print To Screen
- SNCLRP =$eab2 ;Syncronize Color Pointer
- IRQENT =$eabf ;Main IRQ Entry Point
- SCNKEY =$eb1e ;Scan Keyboard
- PROCKY =$eb71 ;Process Key Image
- KDECOD =$ec46 ;Pointers to Keyboard decoding tables
- KDECD1 =$ec5e ;Keyboard Decoding Table-Unshifted
- KDECD2 =$ec9f ;Keyboard Decoding Table-Shifted
- KDECD3 =$ece0 ;Keyboard Decoding Table-Commodore
- GRTXTF =$ed21 ;Graphics/Text Control
- KDECD4 =$ed69 ;Keyboard Decoding Table
- KDECD5 =$eda3 ;Keyboard Decoding Table-Control
- VICSUP =$ede4 ;Video Chip Set Up Table
- RUNSHF =$edf4 ;Shift-Run Equivalent
- LBSCAD =$edfd ;Low Byte Screen Line Addresses
- OTDSBU =$ee49 ;Send Data On Serial Bus
- FLGERR =$eeb4 ;Flag Errors
- ;eeb4 STATUS #80 - DEVICE NOT PRESENT
- ;eeb7 STATUS #03 - WRITE TIMEOUT
- CLRATN =$eec5 ;Clear ATN
- WTFCLK =$eed3 ;Wait For Clock
- SCLK1 =$ef84 ;Serial Clock On
- SCLK0 =$ef8d ;Serial Clock Off
- DELAY =$ef96 ;Delay 1 ms
- SSEND =$efa3 ;RS-232 Send
- SSNDN =$efee ;Send New RS-232 Byte
- DSRERR =$f016 ;'No DSR' Error
- CTSERR =$f019 ;'No CTS' Error
- DISTIM =$f021 ;Disable Timer
- BITCNT =$f027 ;Compute Bit Count
- SERRX =$f036 ;RS-232 Receive
- RXSET =$f05b ;Setup To Receive
- PROCSB =$f068 ;Process RS-232 Byte
- SSUBBT =$f0bc ;Submit to RS-232
- SSENDB =$f0ed ;Send to RS-232 Buffer
- SERINP =$f116 ;Input From RS-232
- SERGET =$f14f ;Get From RS-232
- SBIDLE =$f160 ;Serial Bus Idle
- KIOMST =$f174 ;Table of Kernal I/O Messages
- ;f174 '<CR> I/O ERROR #'
- ;f1df 'OK<CR>'
- DIRMSG =$f1e2 ;Print Message if Direct
- MSG =$f1e6 ;Print Message
- GTTSCH =$f250 ;Get From Tape / Serial / RS-232
- FIND =$f3cf ;Find File
- FLATRB =$f3df ;Set File values
- SENDSA =$f495 ;Send Secondary Address
- SEROPN =$f4c7 ;Open RS-232
- LOADLN =$f549 ;-load-
- SERLOA =$f55c ;Load File From Serial Bus
- TAPLOA =$f5ca ;Load File From Tape
- SRCHMS =$f647 ;Print "SEARCHING"
- FLNMMS =$f659 ;Print Filename
- LOADMS =$f66a ;Print "LOADING / VERIFYING"
- SAVELN =$f685 ;-save-
- SERSAV =$f692 ;Save to Serial Bus
- TAPESV =$f6f1 ;Save to Tape
- SAVEMS =$f728 ;Print "SAVING"
- IOERMS =$f77e ;Output I/O Error Messages
- ;f77e 'TOO MANY FILES'
- ;f781 'FILE OPEN'
- ;f784 'FILE NOT OPEN'
- ;f787 'FILE NOT FOUND'
- ;f78a 'DEVICE NOT PRESENT'
- ;f78d 'NOT INPUT FILE'
- ;f790 'NOT OUTPUT FILE'
- ;f793 'MISSING FILENAME'
- ;f796 'ILLEGAL DEVICE NUMBER'
- LOCTPH =$f7af ;Find Any Tape Header
- WRTPHD =$f7e7 ;Write Tape Header
- GETBFA =$f84d ;Get Buffer Address
- SETBST =$f854 ;Set Buffer Stat / End Pointers
- LOCSPH =$f867 ;Find Specific Tape Header
- INCTPT =$f88a ;Bump Tape Pointer
- PLAYMS =$f894 ;"Print "PRESS PLAY ON TAPE"
- TPSTAT =$f8ab ;Check Tape Status
- RECDMS =$f8b7 ;Print "PRESS RECORD..."
- TPREAD =$f8c0 ;Initiate Tape Read
- TPWRIT =$f8e3 ;Initiate Tape Write
- TPCODE =$f8f4 ;Common Tape Code
- TPSTOP =$f94b ;Check Tape Stop
- SETRDT =$f95d ;Set Read Timing
- RDTPBT =$f98e ;Read Tape Bits
- STORTC =$faad ;Store Tape Characters
- RSTTPP =$fbd2 ;Reset Tape Pointer
- NCHAR =$fbdb ;New Character Setup
- TONE =$fbea ;Send Tone to Tape
- TWRDTA =$fc06 ;Write Data to Tape
- WRLEDR =$fc95 ;Write Tape Leader
- RESIRQ =$fccf ;Restore Normal IRQ
- STOIRQ =$fcf6 ;Set IRQ Vector
- NOMOTR =$fd08 ;Kill Tape Motor
- CKWRPT =$fd11 ;Check Read / Write Pointer
- INCRDP =$fd1b ;Bump Read / Write Pointer
- RSTXFR =$fd22 ;Power-up RESET Entry
- SCNROM =$fd3f ;Check For A000 ROM
- ROMSG =$fd4d ;Autostart ROM signature 'a0CBM'
- KNLRSV =$fd6d ;Kernal reset vector table
- RAMTAS =$FD8D ;Initialize System Constants
- TPVECT =$fdf1 ;IRQ vector table for tape I/O
- IOINIT =$FDF9 ;Initialize I/O
- ENABTM =$fe39 ;Enable Timer
- NMIXFR =$fea9 ;NMI Transfer Entry
- WARMST =$fed2 ;Warm Start Basic [BRK]
- EOI =$ff56 ;Exit Interrupt
- 232TBL =$ff5b ;RS-232 Timing Table
- IRQXFR =$ff72 ;IRQ Transfer Entry
-
- VIC-20 ROM Variable Equates Page 1
- 12/13/96 8:54 AM
-
-
-
-